package cn.kow.kmall.system.service;

import cn.kow.kmall.system.entity.SysUser;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * @Author: lijun
 * @Description:
 * @Date: Created in 2019-10-29 18:27
 * @Modified By:
 */
public interface SysUserService {

    /**
     * 创建用户
     * @param user  用户
     */
    void save(SysUser user);

    /**
     * 更新用户
     * @param userId    用户ID
     */
    void remove(Long userId);

    /**
     * 更新用户
     * @param user  用户
     */
    void update(SysUser user);

    /**
     * 启用用户
     * @param userId    用户ID
     */
    void enableUser(Long userId);

    /**
     * 锁定用户
     * @param userId    用户ID
     */
    void lockUser(Long userId);

    /**
     * 解封用户
     * @param userId    用户ID
     */
    void unlockUser(Long userId);

    /**
     * 根据用户名查找用户
     * @param username  用户名
     * @return 结果
     */
    SysUser findByUserName(String username);

    /**
     * 分页查询用户
     * @param username  用户名
     * @param pageable  分页
     * @return 结果
     */
    Page<SysUser> listUserByPage(String username, String phone, Short status, Pageable pageable);

}
